package com.autonavi.yunda.yunji.core.service;

import com.autonavi.yunda.yunji.core.enums.DatasourceType;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;

import java.util.Collection;
import java.util.List;
import java.util.Optional;

/**
 * 数据源配置服务接口
 *
 * @author ruirui.cr@alibaba-inc.com
 * @date 2023/2/13 10:51
 */
public interface IDataSourceConfigService {

    /**
     * 基于数据源名称查找对应的数据源类型与数据源配置
     *
     * @param dataSourceName
     * @return
     */
    Optional<Pair<DatasourceType, String>> findDataSourceConfigByName(String dataSourceName);

    /**
     * 基于指定数据源类型查找对应的数据源名称、类型与配置
     *
     * @param dataSourceTypes
     * @return
     */
    List<Triple<String, DatasourceType, String>> findByDataSourceTypeList(Collection<DatasourceType> dataSourceTypes);
}
